function numformat(expr,decplaces){
    var str;
    var neitive='';
    if (isNaN(expr) || expr==''){
        expr=0+'';
    }
    expr=parseFloat(expr+'');
    if (expr<0){
        neitive='-';
        expr=-expr;
    }else{
        neitive='';
    }
    expr=expr+'';
    if (decplaces==-1){
        if (expr.indexOf('.')==-1){
            decplaces=0;
        }else{
            decplaces=expr.length - expr.indexOf('.')-1;
        }
    }
    str='' + Math.round(eval(expr) * Math.pow(10,decplaces));
    while(str.length<=decplaces){
        str='0'+str;
    }
    var decpoint=str.length-decplaces;
    var strchar=str.substring(0,decpoint).split('');
    var strlength=strchar.length;
    var i;
    var strint='';
    for(i=1;i<=strlength;i++){
        if (parseInt(((i-1)/3)+'')==parseFloat(((i-1)/3)+'') && i!=1){
            strint=strchar[strlength-i]+','+strint;
        }else{
            strint=strchar[strlength-i]+strint;
        }
    }
    if (str.substring(decpoint,str.length)==''){
        return neitive+strint;
    }else{
        return neitive+strint+'.'+str.substring(decpoint,str.length);
    }
}

